<AspectDngConfig xmlns="http://www.dotnetguru.org/AspectDNG"
	debug="false" 
	logWarnings="true" logWarningsPath="../bin/Debug/Warnings.log"
	logIlml="true" logIlmlPath="../bin/Debug/UnitTests.ilml.xml"
	logWeaving="true" logWeavingPath="../bin/Debug/UnitTests.weaving.xml">
    <BaseAssembly>../bin/Debug/NUnit.dll</BaseAssembly>
    <AspectsAssembly>../bin/Debug/NUnit.dll</AspectsAssembly>
    
    <PrivateLocations>
        <PrivatePath>../bin/Debug/</PrivatePath>
    </PrivateLocations>

    <Advice>
		<!-- Make Person an IPersistent implementation -->
		<InlineAtStart aspectXPath="//Type[@fullName='TestUSS.PersistentAspect']/Method[@name='ConstructorAspect']"
			targetXPath="//Type[@fullName='TestUSS.Person']/Constructor"/>
		<Insert aspectXPath="//Type[@fullName='TestUSS.PersistentAspect']/*" 
			targetXPath="//Type[@fullName='TestUSS.Person']"/>
			
		<!-- Redirect "generic storage" IDictionary access to Persistence Manager -->
		<AroundCall aspectXPath="//Type[@fullName='TestUSS.TransparentStorageAspect']/Method[@name='IDictionaryGetter']"
			targetXPath="//Type[@fullName='TestUSS.Tests.TestPersonTransparently']
				//Instruction[contains(@operand, 'System.Collections.IDictionary::get_Item(')]"/>
		<AroundCall aspectXPath="//Type[@fullName='TestUSS.TransparentStorageAspect']/Method[@name='IDictionarySetter']"
			targetXPath="//Type[@fullName='TestUSS.Tests.TestPersonTransparently']
				//Instruction[contains(@operand, 'System.Collections.IDictionary::set_Item(')]"/>
    </Advice>

    <AdviceFiles>
    </AdviceFiles>
    
    <XsltTransformers>
    </XsltTransformers>
</AspectDngConfig>